osebx <- read_csv("https://www.netfonds.no/quotes/paperhistory.php?paper=OSEBX.OSE&csv_format=csv",
col_types = cols(quote_date = col_date(format = "%Y%m%d")))
osebx <- osebx %>%
select(quote_date, close) %>%
rename(Dato = "quote_date", OSEBX = "close")
monthly_osebx <- osebx %>%
group_by(Dato=floor_date(Dato, "month")) %>%
summarise(OSEBX = mean(OSEBX))
osebx$Dato <- ymd(osebx$Dato)
## [1] "C"
gull$Dato <- as.Date(gull$Dato)
usd_nok$Dato <- as.Date(usd_nok$Dato)
eiendom$Dato <- as.Date(eiendom$Dato)
monthly_joined <- monthly_osebx %>%
inner_join(gull, by = "Dato") %>%
inner_join(usd_nok, by = "Dato") %>%
inner_join(monthly_eqnr, by = "Dato") %>%
inner_join(eiendom, by = "Dato")
monthly_joined
## # A tibble: 190 x 6
## Dato OSEBX Gull_usd USD_NOK EQNR nominell
## <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2003-01-01 116. 357. 6.92 55.5 100
## 2 2003-02-01 104. 360. 7.16 52.8 101.
## 3 2003-03-01 104. 342. 7.27 55.7 101.
## 4 2003-04-01 111. 328. 7.00 56.4 101.
## 5 2003-05-01 122. 355. 6.68 57.6 99.8
## 6 2003-06-01 133. 357. 7.21 61.5 99.7
## 7 2003-07-01 139. 351. 7.29 62.3 100.
## 8 2003-08-01 149. 359. 7.51 66.7 102.
## 9 2003-09-01 151. 379. 7.04 66.4 103.
## 10 2003-10-01 153. 379. 7.11 66.5 104.
## # ... with 180 more rows
full <- osebx %>%
full_join(gull, by = "Dato") %>%
full_join(usd_nok, by = "Dato") %>%
full_join(eqnr, by = "Dato") %>%
full_join(bitcoin, by = "Dato") %>%
full_join(eiendom, by = "Dato")
full
## # A tibble: 6,183 x 7
## Dato OSEBX Gull_usd USD_NOK EQNR BTC_usd nominell
## <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2018-12-04 870 NA NA 205. NA NA
## 2 2018-12-03 874. NA NA 207. NA NA
## 3 2018-11-30 861. NA NA 200. NA NA
## 4 2018-11-29 862. NA NA 200. NA NA
## 5 2018-11-28 854. NA NA 199 NA NA
## 6 2018-11-27 857. NA NA 200. NA NA
## 7 2018-11-26 853. NA NA 199. NA NA
## 8 2018-11-23 837. NA NA 194 NA NA
## 9 2018-11-22 849. NA NA 202 NA NA
## 10 2018-11-21 855. NA NA 204. NA NA
## # ... with 6,173 more rows
## # A tibble: 6 x 3
## Dato investering verdi
## <date> <fct> <dbl>
## 1 2003-01-01 OSEBX 116.
## 2 2003-02-01 OSEBX 104.
## 3 2003-03-01 OSEBX 104.
## 4 2003-04-01 OSEBX 111.
## 5 2003-05-01 OSEBX 122.
## 6 2003-06-01 OSEBX 133.
#monthly_returns <- monthly_gathered %>%
# group_by(investering) %>%
# arrange(investering, Dato) %>%
# mutate(returns = c(NA, exp(diff(log(verdi)))-1)) %>%
# na.omit()
tidy_monthly_returns <- monthly_gathered %>%
group_by(investering) %>%
tq_transmute(mutate_fun = periodReturn, period = "monthly")
total_monthly_returns <- tidy_monthly_returns %>%
mutate(cumulative.returns = cumsum(monthly.returns))
wide_monthly_returns <- tidy_monthly_returns %>%
spread(investering, monthly.returns)
monthly_returns_xts <- as.xts(wide_monthly_returns, order.by = wide_monthly_returns$Dato)
monthly_returns_xts <- monthly_returns_xts[,2:5] #husk å oppdatere
sd_returns <- StdDev(monthly_returns_xts)
cumsum_test <- monthly_returns_xts %>%
cumsum() %>%
tail(n=1)
plot(StdDev(monthly_returns_xts), cumsum_test)

ggplot(total_monthly_returns, aes(x=Dato, y = cumulative.returns, color = investering))+
geom_line()

names(monthly_returns_xts)
## [1] "EQNR" "OSEBX" "USD_NOK" "nominell"
equal_weights = c(0.25, 0.25, 0.25, 0.25)
higher_stocks = c(0.4, 0.1, 0.4, 0.1)
#for some reason returns are class character
storage.mode(monthly_returns_xts) <- "numeric"
StdDev(monthly_returns_xts, weights = equal_weights) # sd = 0.022
## [,1]
## [1,] 0.02479017
StdDev(monthly_returns_xts, weights = higher_stocks) # sd = 0.041
## [,1]
## [1,] 0.02658493
#Return.portfolio(monthly_returns_xts, weights = equal_weights)
sum(Return.portfolio(monthly_returns_xts, weights = equal_weights))
## [1] 1.477105
#Return.portfolio(monthly_returns_xts, weights = higher_stocks)
sum(Return.portfolio(monthly_returns_xts, weights = higher_stocks))
## [1] 1.271396


## [1] "Dato" "styringsrente"
